Un crâne ouvert au sommet sert de piscine à un homme qui se baigne dans une bouée canard, le tout sur fond bleu tirant vers le noir.

C’est un truc qui fait des calculs

IA : c’est quoi exactement un neurone (informatique), comment ça marche

Un crâne ouvert au sommet sert de piscine à un homme qui se baigne dans une bouée canard, le tout sur fond bleu tirant vers le noir.

Abonnez-vous pour tout dévorer et ne rien manquer.

Déjà abonné ? Se connecter

Abonnez-vous

Neurone… c’est un mot qui revient souvent quand on parle d’intelligence artificielle. Mais c’est quoi exactement un neurone artificiel ? Comment ça marche et à quoi ça sert ? On vous explique simplement, avec un petit détour dans les années 40 pour remonter à sa création.

Au cours des derniers mois, nous vous avons proposé un petit lexique des termes courants utilisés en intelligence artificielle. Le but : vous permettre de bien comprendre de quoi il en retourne et d’appréhender les changements majeurs que l’IA apporte actuellement.

AGI, modèles de fondation, prompt injection, empoisonnement, inférence, hallucination, paramètre, quantification, neurone… Tous ces mots ne devraient plus trop avoir de secret pour vous. Mais un élément mérite qu’on s’attarde davantage sur son fonctionnement : le neurone, qui est à la base des IA modernes.

Dessine-moi un neurone

Une fois n’est pas coutume, on va donner une présentation des plus simplistes du neurone, puis vous expliquer plus finement de quoi il en retourne. Un neurone, c’est simplement un outil mathématique qui réalise une somme pondérée de variables. Voilà, vous pouvez passer à autre chose… ou bien continuer à nous lire et en savoir bien plus.

Abonnez-vous pour tout dévorer et ne rien manquer.

Déjà abonné ? Se connecter

Abonnez-vous

Commentaires (13)


Hâte de lire la suite !
Merci pour cette synthèse
Super intéressant le débat symbolique vs connexionniste. Merci pur l'article
Merci beaucoup !
C'est fou parce que ca me fait penser a 2 trucs :

- Les GPU ont beaucoup de petits coeurs pour faire du traitement graphique, et ca tombe bien car on a besoin de beaucoup de petits processeurs pour paralléliser efficacement les fonctions d'activation et de combinaisons
- les fonctions mathématique qu'on vois sur le dernier schéma, ça ressemble également des fonctions utilisés dans certains traitement graphique (dans Photoshop le mode seuils, ou les différents rendu Sombre, Multiplier, Overlay, Brulure, Diff, Exclusions...)

Merci beaucoup pour cette série d'articles !!
Très intéressant, merci !
Mathématiquement (et informatiquement), il existe une opération qui s'appelle le produit matriciel. Ce produit permet de prendre en entrée la sortie de tous les neurones de la couche précédentes (un vecteur de taille n) et le poids de tous les neurones de la couche en cours (une matrice de taille (m, n)) et ressort un vecteur de taille m. Ce dernier est le résultat pour chacun des m neurones de la somme pondérée. Cette opération est tellement centrale dans les réseaux de neurones que NVidia a décidé de faire un cœur dédié rien qu'à ça dans ses cartes : les tensor core et ça prend une certaine surface sur ses cartes (depuis les RTX pour les cartes grand public).

Faire des produits matriciels à la chaine ne sert à rien, car il est possible de résumer cette suite d'opération en une seule, exactement comme faire des multiplications les unes à la suite des autres, il est possible de résumer ceci en une seule opération. Il faut donc ajouter une opération non linéaire entre deux opérations linéaires.C'est le rôle de la fameuse fonction d'activation.

Il est intéressant de voir ça comme une suite de transformations géométriques d'un espace de n dimension vers un espace à m dimension. Un produit matriciel répond à certaines règles (les points restent alignés, les proportions des segments restent les mêmes, le zéro reste en zéro). L'opération non linéaire permet de casser ces règles et de déformer l'espace. Au final, j'avais bien aimé la représentation des réseaux de neurone comme quelqu'un qui prend une feuille avec des points (les données) dessus et qui plie cette feuille dans tous les sens pour faire en sorte que les points s'organisent bien.
J’ai peut-être manqué un épisode mais je suis intéressé par cette présentation, où peut on la trouver ?

rm

J’ai peut-être manqué un épisode mais je suis intéressé par cette présentation, où peut on la trouver ?
Dans les entrailles pas très saines de mes méninges malheureusement.

Des quelques introductions que j'ai lu, celle que l'on retrouve dans le livre "Deep Learning With Python" par François Chollet est surement l'un des plus simples et pourtant précises. Après, le mec, il est aussi auteur de la bibliothèque "Keras", ce qui laisse à penser qu'il a les idées claires dans le domaine.

Il est intéressant de signaler que l'on peut voir les réseaux de neurones selon 3 angles différents :
- l'angle biologique, celui qui voit des neurones qui sont organisés en couche
- L'angle arithmétique, qui voit que des opérations mathématiques, mais derrière ouvre la voie vers le 3ième angle et aussi vers les études les plus poussées.
- L'angle géométrique. Celui-là, je l'aime bien, car on arrive, sur des MLP (multi layer perceptron, et dans une moindre mesure les CNN (convolutional neural network) et les RNN (recursive neural network), à visualiser les transformations successives des données.

Souvent, on présente les réseaux de neurones par l'angle biologique, mais je trouve que c'est celui qui explique le moins bien ce qui se passe réellement.
Whoa, pleins de choses dites, mais un poil rapidement. Je vais donner des exemples pour ceux qui, comme moi, les préfèrent pour comprendre des concepts.

Déjà, le perceptron. Son origine, et ce qu'il arrive à "imiter", ce sont les insectes, avec une intelligence limitée, basé uniquement sur la perception (d'où son nom). Par exemple, vous avez une voiture jouet électrique. Vous lui mettre un détecteur de présence à l'arrière, que vous relier au moteur. Quand une main (ou quoi que ce soit) s'approche, le moteur se déclenche, et la voiture avance pour "fuir". Il ne s'agit pas d'intelligence en tant que tel, mais ça imite parfaitement un insecte qui fuit dès que quelque chose s'approche de lui. Et il n'y a qu'un neurone : l'entrée (la distance à l'objet 'x') est pondéré (du genre 'ax+b' par exemple, pour a,b,x ∈ ℝ), et et émet une sortie binaire, déclenchant le moteur ou non. Ca peut également contrôler le moteur analogiquement : plus quelque chose est proche, plus le moteur va vite, simulant une fuite lente quand on est loin et une fuite rapide quand on est proche.
De la même manière, vous pouvez mettre deux détecteur de présence, un a l'arrière droite l'autre à l'arrière gauche, déclenchant le moteur de la roue de son côté, pour ajouter une rotation en plus de la fuite. Si on rajoute deux détecteur de lumière à l'avant, branchés sur les roues opposées (détecteur avant gauche sur moteur avant droit) "l'insecte" va simuler une attirance vers la lumière.
Ainsi, avec quelques capteurs et quelques neurones "directs", on pourrait simuler presque parfaitement le fonctionnement d'un insecte.
(ces voitures s'appellent des véhicules de Braitenberg, voir pages 36 à 41 de ce PDF pour des illustrations de ce que je décris http://cqcb.mm.free.fr/cours/M2S1/ASI/cours1b_2007.pdf)

Les réseaux de neurones, c'est la même chose, mais multiplié par beaucoup. Notre cerveau fonctionne de la même façon : chaque neurone reçoit en entrée des données pondérés, les additionne, et si ça dépasse un seuil spécifique au neurone, transmet l'information au neurone suivant.
Ca a l'air simple comme ça, mais c'est vraiment comme ça que fonctionne notre cerveau, et les réseaux de neurones informatiques.
Mais le plus important, c'est la remontée du gradient : quand au final, le résultat donné par le réseau est faux, on baisse la pondération de tous les neurones ayant contribué à ce résultat. Quand le résultat est bon, on augmente tous les poids qui ont contribué au résultat. Et on recommence le même calcul. Encore et encore et encore. Puis on change légèrement une variable d'entrée, et on réessaye jusqu'à ce que ça fonctionne à nouveau, et on revient à la première pour vérifier que ça fonctionne encore, et on recommence, encore et encore. C'est cette partie qui est désignée comme l'apprentissage d'un réseau de neurones, faussement appelé IA.
Pour donner un exemple concret. Imaginez que vous êtes dans le désert, et une course automobile va avoir lieu. Il y a trois lieux de départ, un pour une voiture, un pour un camion, un pour une moto. Et une seule arrivé, avec des routes qui se chevauchent. Vous voulez tricher, et vous assurer que les véhicules arrivent dans l'ordre que vous souhaitez. Pour cela vous aller tout d'abord faire une course, voir quel est l'ordre d'arrivé. Suivant cela, vous aller peut-être bouger une dune, adoucir une pente, bref, modifier légèrement le terrain. Vous allez relancer une course, et voir ce qui a changé par rapport à la précédente, et modifier à nouveau le terrain. Encore et encore et encore. Jusqu'à ce que le résultat souhaité soit atteint.
C'est ça, l'apprentissage d'un réseau de neurone : c'est extrêmement complexe et surtout demande énormément de calculs, parce qu'il faut utiliser des millions de fois le réseau de neurone à chaque phase de l'entraînement. Et c'est aussi une boite noire : personne ne sait pourquoi une dune est à un endroit plutôt qu'à un autre. C'est aussi extrêmement fragile : remplacer la moto par un quad par exemple invaliderait totalement le processus d'apprentissage, et rendrait tout ces efforts inutiles.
Bref, un réseau de neurones peut faire beaucoup de choses, mais c'est pas une panacée, et il faut savoir l'utiliser avec discernement. Par exemple, dans le cas de la course dans le désert, il aurait été plus efficace et moins cher de corrompre les pilotes que d'essayer d'arranger des dunes ;)
(pour ceux qui veulent en savoir plus, je recommande la lecture de ce PDF http://cqcb.mm.free.fr/cours/M2S1/IA/livre_touzet.pdf)

Je suis ouvert à toutes les questions que vous pourriez avoir sur l'IA.

(note : ce post est libre de droit, excepté les PDFs liés)
Cela devient moins nébuleux, merci ! <3
Je suis pas super d'accord avec la slide sur l'histoire du neurone. La sortie d'un neurone ce n'est pas plutôt les synapses ?
L'axone ne sert qu'à transmettre l'information électrique, mais c'est à la synapse que ce fait la conversion électrique chimique.

Où alors j'ai manqué quelque chose...
Il y a cette vidéo de Vsauce qui illustre bien je trouve le concept de neurone et l'assemblage pour faire quelque chose. https://youtu.be/rA5qnZUXcqo?feature=shared
Bon article. Elektor a fait une petite série d'article là-dessus, avec au final un article très didactique sur comment entraîner et faire tourner un réseau de neurones sur un arduino afin de déterminer si une couleur est chaude ou froide (en 2021).
Fermer